Telegram Group Search
5 невероятных новых возможностей в Symfony 7.3 🚀

Фреймворк получил сразу несколько мощных улучшений, которые делают код чище, отладку проще, а работу — быстрее. Вот ключевые фичи релиза:

1️⃣ ObjectMapper: минимум шаблонного кода
Маппинг DTO → Entity теперь одной строкой:

$user = $mapper->map($dto, User::class);

А обновление объекта — без боли:

$mapper->map($dto, $user);

2️⃣ Пояснения решений Security Voter'ов
Теперь можно узнать почему отказано в доступе — Symfony выводит причины в профайлер и логи:

$vote?->addReason('Пользователь заблокирован и не может комментировать');

3️⃣ JsonPath: запросы к JSON как XPath к XML
Новый компонент для извлечения и фильтрации JSON-данных:

$crawler->find('$.store.book[?(@.price < 10)]');

Поддержка функций length(), count(), match() и др.

4️⃣ Статические страницы ошибок
Теперь можно сгенерировать HTML-страницы для ошибок (400–511) и отдать их напрямую из nginx:

APP_ENV=prod php bin/console error:dump var/cache/prod/error_pages/

5️⃣ Server-Sent Events — просто
Реализовать стриминг событий на клиент стало легче:

yield new ServerEvent($job->toJson(), type: 'jobs');

Без внешних библиотек и с нативной поддержкой.

🔗 Подробнее — в блоге Symfony.

Библиотека пхпшника #буст
🫣 Устали от HR-сказок про «дружный коллектив» и «печеньки в офисе»?

Давайте честно поговорим о том, что действительно происходит на IT-рынке. Не в розовых презентациях, а в реальной жизни разработчиков, тестировщиков, аналитиков и всех, кто живет кодом.

🧐 Мы проводим исследование, чтобы выяснить:

— Как часто мы прыгаем между компаниями (и почему)
— Какие красные флаги заставляют бежать без оглядки
— Где реально находят работу
— Что бесит в HR больше всего
— Сколько кругов собеседований — это уже перебор

Результаты покажут реальную картину рынка. Без приукрашиваний. Может, компании поймут, что нужно менять, а специалисты — куда двигаться дальше.

😈 Опрос займет 5 минут, но результаты будут работать на всех нас → https://clc.to/9aaXVg
Стоит ли изучать Symfony, если вы фрилансер или маленькое агентство?

К нам пришёл вопрос от подписчика:
«Symfony — это только для крупных команд и энтерпрайз-проектов, или его можно смело использовать фрилансерам и маленьким агентствам?»

Anton , PHP-разработчик


Symfony — мощный и гибкий фреймворк, который часто ассоциируется с большими корпоративными проектами. Но стоит ли его учить, если вы — фрилансер или маленькая команда?

Symfony — не только для больших проектов
Да, Symfony отлично масштабируется для сложных систем с несколькими командами и сотнями модулей. Но его компоненты можно использовать по отдельности, что даёт гибкость и небольшим проектам. Он не обязательно громоздкий — всё зависит от подхода.

Обучение Symfony — инвестиция в профессионализм
В отличие от более «opinionated» фреймворков (например, Laravel), Symfony даёт больше контроля и понимания, как устроен PHP-стек изнутри. Это даёт прочный фундамент, который пригодится при росте и переходе к более сложным задачам.

Для фрилансера важна универсальность
Symfony подходит, если вы хотите не просто быстро делать задачи, а понимать архитектуру, строить расширяемые решения и работать с разными клиентами. Это может быть полезно и для маленьких проектов, где качество важнее количества.

Однако, время — главный ресурс
Для простых сайтов и MVP иногда проще взять что-то более лёгкое и быстрое. Но если вы готовы инвестировать время в изучение, Symfony откроет двери к более серьёзным проектам и клиентам.

Что делать?
🔸 Если вы начинаете и хотите быстро запускать проекты — можно рассмотреть более «легковесные» фреймворки.

🔸 Если вы планируете расти, работать с разными клиентами и стремитесь к глубине — Symfony стоит учить и использовать даже в маленьких проектах.

🔸 Комбинируйте: учитесь Symfony на уровне компонентов и используйте именно то, что нужно для конкретной задачи.

💬 А вы что думаете? Используете ли Symfony в фрилансе? Какие плюсы и минусы заметили? Делитесь опытом и советами в комментариях👇

Библиотека пхпшника #междусобойчик
🌐 Шпаргалка по ключевым сетевым протоколам и их взаимосвязям

Подготовили для вас наглядную схему, которая визуально покажет взаимодействие протоколов.

Краткие пояснения по схеме:

• IPv4 / IPv6 — сетевые протоколы, определяющие, как устройства находят друг друга в интернете

• ICMP / ICMPv6 — диагностика и контроль (например, команды ping, traceroute)

• TCP / UDP / SCTP / DCCP — транспортные протоколы

• IPSec — безопасность на уровне IP (шифрование, проверка подлинности)

На основе UDP работают:

• DNS — доменные имена
• DHCP — выдача IP-адресов
• SIP — VoIP телефония
• NTP — синхронизация времени
• RIP / RPT — маршрутизация
• QUIC — альтернатива TCP от Google, работает поверх UDP

На основе TCP:

• HTTP / HTTPS — веб-протокол
• SSL/TLS — безопасное соединение
• SSH — защищённый удалённый доступ
• POP / IMAP — получение почты
• RDP / VNC — удалённый рабочий стол
• BGP — обмен маршрутами между провайдерами

💬 На какие темы вы бы хотели увидеть шпаргалки? Напишите свои варианты в комментарии 👇

Библиотека пхпшника #буст
Сказ о том, как один программист себе мебель из ДСП на PHP программировал

Автор столкнулся с типичной проблемой — готовая мебель из ДСП редко идеально вписывается в интерьер, функционал и бюджет. Решив взять дело в свои руки, он отказался от визуального проектирования и создал собственную библиотеку для проектировки мебели программным способом.

Основная идея — описывать мебель как набор параллелепипедов с понятными размерами: ширина, высота, глубина. Вместо классического 3D-моделирования с визуальным интерфейсом используется скриптовый подход, где мебель строится и модифицируется через код на PHP. Это упрощает внесение изменений и позволяет генерировать точные схемы для распила.

Для визуализации и рендеринга моделей применяется OpenSCAD — легкий инструмент, который работает с текстовыми файлами, описывающими геометрию. Автор создал библиотеку, которая генерирует SCAD-файлы из PHP-кода, добавляя новые возможности для удобной работы с мебельными деталями и их расположением.

🔗 Хабр
🥴 Средний разработчик меняет работу каждые 1,5 года

И это не потому, что мы такие непостоянные. Просто рынок показывает свое истинное лицо быстрее, чем успевают напечатать визитки.

Поэтому мы собираем инсайды от тех, кто находится в окопах digital-трансформации каждый день. От джуниоров, которые только въезжают в профессию, до сеньоров, повидавших всякого.

😳 О чем говорим откровенно:
— Job-hopping и что за этим стоит
— Red flags, которые мгновенно убивают мотивацию
— Реальные источники вакансий (не те, что рекламируют)
— Боль от общения с рекрутерами
— Сколько этапов отбора — норма, а сколько — издевательство

Когда мы объединим опыт сотен IT-специалистов, получится настоящая карта того, как устроена индустрия. Не по версии HR-отделов, а по версии тех, кто пишет код, тестирует продукты и двигает технологии вперед.

🚀 Участвовать в исследовании → https://clc.to/9aaXVg
👔 Роль крупных компаний в развитии IT-индустрии

В мире технологий существует устоявшееся мнение, что крупные корпорации — это непоколебимые лидеры инноваций и драйверы индустрии. Но давайте посмотрим трезво.

• Часто за красивыми презентациями и маркетингом скрывается консерватизм. Новые идеи не всегда приживаются, если они угрожают прибыльности или текущим бизнес-моделям.

• В больших организациях бюрократия и формальные процедуры порой загоняют проекты в рамки, где инновации превращаются в рутину и формальность.

• Монополизация рынков и контроль над ключевыми сегментами IT создают барьеры для молодых стартапов и независимых разработчиков.

В итоге мы получаем стабильность и масштаб, но платим за это снижением гибкости, замедлением темпов внедрения действительно новых технологий и ограничением свободы выбора.

💬 Кто видит в крупных компаниях источник прогресса, а кто — фактор стагнации? Ждём ваши мысли в комментариях 👇

Библиотека пхпшника #междусобойчик
💻 Подборка новостей по PHP за неделю:​

🔹 Laravel 12.16 — добавлены новые правила валидации: Rule::contains(), in_array_keys и метод Arr::hasAll(). Всё это повышает выразительность и гибкость при проверке данных.

🔹 Filament на Android — теперь админ-панель Filament можно запускать нативно в Android-приложении благодаря NativePHP.

🔹 Symfony 7.3.0 и 7.2.7 — вышли стабильная версия 7.3 с множеством новых фич (глобальные параметры переводов, атрибуты в консоли и др.) и минорное обновление 7.2.7 с исправлениями.

🔹 Неделя Symfony #961 (26-1 мая 2025 года) — опубликован обзор недели: выпуск 7.3, патчи 6.4.22 и 7.2.7, продолжение публикаций об обновлениях и подготовка к SymfonyOnline.

🔹 Sublime Text 4200 — редактор получил поддержку правой боковой панели, улучшенную подсветку кода и новые синтаксисы для ZSH и TOML.

Библиотека пхпшника #свежак
Вакансии «Библиотеки программиста»

Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.

👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой

Большим плюсом будет навык программирования на каких-либо языках.

Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач

🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Вызов какой из этих функций значительно увеличит объем используемой памяти (представьте, что мы измеряем пиковое использование памяти до и после вызова функции)?
Вызов какой из этих функций значительно увеличит объем используемой памяти (представьте, что мы измеряем пиковое использование памяти до и после вызова функции)?
Anonymous Quiz
10%
`unset_first` и `add_new`
25%
`add_new`
14%
`get_count` и `unset_first`
29%
`unset_first`
8%
Всех
14%
Никакой
⌨️ Топ-вакансий по PHP за неделю

PHP/Go разработчик — от 220 000 до 450 000 ₽ удалёнка (Москва)

Java/PHP-разработчик (Кинопоиск) — от 300 000 ₽, Гибрид (Москва, Санкт-Петербург)

Backend-разработчик (PHP) — от 250 000 до 270 000₽, Гибрид (Санкт-Петербург)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
⬆️ Мониторинг неудачных заданий

Вам когда-нибудь нужно было следить за неудачными заданиями и получать уведомления, когда это происходит? Метод failing позволяет вам сделать именно это

Библиотека пхпшника #буст
😡 А вас тоже бесят облачные сервисы?

Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?

Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.

Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное

По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.

️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
🚀 Как оптимизировать Laravel-приложение: практические советы

Когда приложение растёт или работает с большими объёмами данных, оптимизация — не просто желание, а необходимость. Laravel — мощный фреймворк, который при грамотном подходе может выдавать высокую производительность.

Разбираем ключевые техники:

1️⃣ Оптимизация запросов к базе
Eager Click Me Load More: избегайте проблемы N+1 запросов, загружая связи заранее через with().
Выбирайте только нужные колонки с помощью select() для уменьшения объёма передаваемых данных.
Обрабатывайте большие наборы данных по частям через chunkById() — так снижается нагрузка на память.
Используйте toBase(), если нужна простая выборка без моделей и лишних данных (без отношений и событий).

2️⃣ Кэширование
Кэшируйте дорогостоящие запросы через Cache::remember().
Используйте кэш конфигураций и шаблонов (config:cache, view:cache) для ускорения загрузки.
Рассмотрите пакеты типа spatie/laravel-responsecache для кэширования ответов.

3️⃣ Ограничение запросов (Rate Limiting)
Защищайте API от перегрузок, используя встроенный middleware RateLimiter. Можно настроить правила по IP, пользователям и ролям.

4️⃣ Индексация базы данных
Правильные индексы — основа производительности SQL-запросов. Laravel миграции позволяют легко добавлять индексы: уникальные, обычные, полнотекстовые.

5️⃣ Советы по Eloquent
Не загружайте лишние связи, используйте withOnly() (Laravel 11).
Для получения одного столбца вместо get() применяйте pluck().
Для тяжёлой логики используйте сырые запросы через DB::select().

6️⃣ Очереди и фоновая обработка
Перенесите тяжёлые задачи (отправка писем, интеграции, экспорты) в очереди с помощью Laravel Queues и обработчиков (Redis + Supervisor или Laravel Octane).

👉 Читать статью
🎮 Эффективное управление ветками с помощью git rebase

Проблема: при работе с несколькими ветками в Git история коммитов может становиться запутанной из-за частых слияний, что усложняет анализ изменений.

Решение:
в книге "Mastering Git" автор показывает использование команды git rebase, которая позволяет линейно интегрировать изменения из одной ветки в другую, сохраняя историю чистой и понятной.

Пример кода:
# Переключаемся на ветку feature
git checkout feature

# Выполняем rebase на master
git rebase master

# Если возникают конфликты, разрешаем их и продолжаем rebase
git add <исправленные файлы>
git rebase --continue

# Переключаемся на master и сливаем изменения
git checkout master
git merge feature --ff-only


Преимущества:

— Чистая и линейная история изменений.
— Упрощение процесса ревью кода.
— Лёгкость в отслеживании изменений.

Еще больше полезных книг — в нашем канале @progbook
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/06/11 09:35:53
Back to Top
HTML Embed Code: